\hypertarget{class_port_base}{}\section{Port\+Base Class Reference}
\label{class_port_base}\index{Port\+Base@{Port\+Base}}


{\ttfamily \#include $<$portbase.\+hpp$>$}

Inheritance diagram for Port\+Base\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{class_port_base}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual F\+I\+F\+O \& \hyperlink{class_port_base_ad034502b053f3cd7939d651b2d72cd0a}{operator\mbox{[}$\,$\mbox{]}} (const std\+::string \&\&port\+\_\+name)=0
\item 
virtual bool \hyperlink{class_port_base_a29870b5e201f46a806d2269d7f4635dc}{has\+Ports} ()=0
\item 
virtual \hyperlink{class_port_iterator}{Port\+Iterator} \hyperlink{class_port_base_afc54c92e3b9d1967e8a8c7e74d7507d3}{begin} ()=0
\item 
virtual \hyperlink{class_port_iterator}{Port\+Iterator} \hyperlink{class_port_base_a50427e7a1beea0d5111ccc81ee418178}{end} ()=0
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{portbase_8hpp_source}{portbase.\+hpp} -\/ Interface for port types. Ensures that all port sub-\/classes have at least the functions listed below.

\begin{DoxyAuthor}{Author}
\+: Jonathan Beard 
\end{DoxyAuthor}
\begin{DoxyVersion}{Version}
\+: Sun Nov 30 10\+:22\+:46 2014
\end{DoxyVersion}
Copyright 2014 Jonathan Beard

Licensed under the Apache License, Version 2.\+0 (the \char`\"{}\+License\char`\"{}); you may not use this file except in compliance with the License. You may obtain a copy of the License at\+:

\href{http://www.apache.org/licenses/LICENSE-2.0}{\tt http\+://www.\+apache.\+org/licenses/\+L\+I\+C\+E\+N\+S\+E-\/2.\+0}

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \char`\"{}\+A\+S I\+S\char`\"{} B\+A\+S\+I\+S, W\+I\+T\+H\+O\+U\+T W\+A\+R\+R\+A\+N\+T\+I\+E\+S O\+R C\+O\+N\+D\+I\+T\+I\+O\+N\+S O\+F A\+N\+Y K\+I\+N\+D, either express or implied. See the License for the specific language governing permissions and limitations under the License. 

\subsection{Member Function Documentation}
\hypertarget{class_port_base_afc54c92e3b9d1967e8a8c7e74d7507d3}{}\index{Port\+Base@{Port\+Base}!begin@{begin}}
\index{begin@{begin}!Port\+Base@{Port\+Base}}
\subsubsection[{begin()=0}]{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf Port\+Iterator} Port\+Base\+::begin (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{class_port_base_afc54c92e3b9d1967e8a8c7e74d7507d3}
begin -\/ returns a forward iterator to the port list, implementations should be thread safe so that auto-\/ parallelized code can function properly. \begin{DoxyReturn}{Returns}
\hyperlink{class_port_iterator}{Port\+Iterator} -\/ points to first port, not in alphabetical or necessarily any order. 
\end{DoxyReturn}


Implemented in \hyperlink{class_port_abf4d86026b67f6c02db3e3abb0f2e8b4}{Port}.

\hypertarget{class_port_base_a50427e7a1beea0d5111ccc81ee418178}{}\index{Port\+Base@{Port\+Base}!end@{end}}
\index{end@{end}!Port\+Base@{Port\+Base}}
\subsubsection[{end()=0}]{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf Port\+Iterator} Port\+Base\+::end (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{class_port_base_a50427e7a1beea0d5111ccc81ee418178}
end -\/ returns one past the end of the iterator, should be suitable for usage in a for( xxx \+: xxx ) loop just as in any other meaningful usage of a forward iterator. \begin{DoxyReturn}{Returns}
\hyperlink{class_port_iterator}{Port\+Iterator} -\/ points to one past the last port. 
\end{DoxyReturn}


Implemented in \hyperlink{class_port_aa85be3fb7734863d482bf002e0f0923d}{Port}.

\hypertarget{class_port_base_a29870b5e201f46a806d2269d7f4635dc}{}\index{Port\+Base@{Port\+Base}!has\+Ports@{has\+Ports}}
\index{has\+Ports@{has\+Ports}!Port\+Base@{Port\+Base}}
\subsubsection[{has\+Ports()=0}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool Port\+Base\+::has\+Ports (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{class_port_base_a29870b5e201f46a806d2269d7f4635dc}
has\+Ports -\/ should return false if this port object is empty. \begin{DoxyReturn}{Returns}
bool -\/ true if no ports 
\end{DoxyReturn}


Implemented in \hyperlink{class_port_a7042f5b5c2ab14c9591a4984811a6012}{Port}.

\hypertarget{class_port_base_ad034502b053f3cd7939d651b2d72cd0a}{}\index{Port\+Base@{Port\+Base}!operator\mbox{[}$\,$\mbox{]}@{operator[]}}
\index{operator\mbox{[}$\,$\mbox{]}@{operator[]}!Port\+Base@{Port\+Base}}
\subsubsection[{operator[](const std\+::string \&\&port\+\_\+name)=0}]{\setlength{\rightskip}{0pt plus 5cm}virtual F\+I\+F\+O\& Port\+Base\+::operator\mbox{[}$\,$\mbox{]} (
\begin{DoxyParamCaption}
\item[{const std\+::string \&\&}]{port\+\_\+name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{class_port_base_ad034502b053f3cd7939d651b2d72cd0a}
operator\mbox{[}\mbox{]} -\/ enables lookup of ports by name, which in turn enables the user to name each port something that is telling of the underlying function. 
\begin{DoxyParams}{Parameters}
{\em port\+\_\+name} & -\/ name of the port you wish to get \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
F\+I\+F\+O\& 
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em -\/} & should throw a \hyperlink{class_port_not_found_exception}{Port\+Not\+Found\+Exception} if port\+\_\+name doesn\textquotesingle{}t exist. \\
\hline
\end{DoxyExceptions}


Implemented in \hyperlink{class_port_a08cf165426982d83e5a191ba74cc6e5d}{Port}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
portbase.\+hpp\end{DoxyCompactItemize}
